var express = require('express');
var router = express.Router();

const {getList, getDetail, newBlog, updateBlog, delBlog} = require('../controller/blog');
const {SuccessModel, ErrorModel} = require('../model/resModel'); 
const loginCheck = require('../middleware/loginCheck') // 中间件

/**
 * 获取博客列表
 */
router.get('/list', function (req, res, next) {
  // express 帮我们做了query的解析.不用原始queryString()来解析
  const author = req.query.author || '';
  const keyword = req.query.keyword || '';

  const result = getList(author, keyword);
  result.then((listData) => {
    res.json(new SuccessModel(listData)); 
  })
});

router.get('/detail', (req, res, next) => {
  const result = getDetail(req.query.id)
  return result.then(data => {
      res.json(
          new SuccessModel(data)
      )
  })
});

router.post('/new', loginCheck, (req, res, next) => {
  req.body.author = req.session.username
  const result = newBlog(req.body)
  return result.then(data => {
      res.json(
          new SuccessModel(data)
      )
  })
})

router.post('/update', loginCheck, (req, res, next) => {
  const result = updateBlog(req.query.id, req.body)
  return result.then(val => {
      if (val) {
          res.json(
              new SuccessModel()
          )
      } else {
          res.json(
              new ErrorModel('更新博客失败')
          )
      }
  })
})

router.post('/del', loginCheck, (req, res, next) => {
  const author = req.session.username
  const result = delBlog(req.query.id, author)
  return result.then(val => {
      if (val) {
          res.json(
              new SuccessModel()
          )
      } else {
          res.json(
              new ErrorModel('删除博客失败')
          )
      }
  })
})

module.exports = router;
